package com.bai.process.service;

import com.bai.model.process.Process;
import com.bai.model.vo.process.ApprovalVo;
import com.bai.model.vo.process.ProcessFormVo;
import com.bai.model.vo.process.ProcessQueryVo;
import com.bai.model.vo.process.ProcessVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
 * <p>
 * 审批类型 服务类
 * </p>
 *
 * @author bai
 * @since 2023-06-01
 */
public interface OaProcessService extends IService<Process> {

    //TODO:审批管理列表
    IPage<ProcessVo> selectPage(Page<ProcessVo> processPage, ProcessQueryVo processQueryVo);
    //TODO:部署流程定义
    void  deployByZip(String deployPath);

    //TODO:启动流程部署
    void startUp(ProcessFormVo processFormVo);

    //TODO:查询待处理列表
    IPage<ProcessVo> findPending(Page<Process> pageParam);

    //TODO:查询审批详细信息
    Map<String, Object> show(Long id);

    //TODO:审批
    void approve(ApprovalVo approvalVo);

    //TODO:已处理
    IPage<ProcessVo> findProcessed(Page<Process> pageParam);

    //TODO:已发起
    IPage<ProcessVo> findStarted(Page<ProcessVo> pageParam);
}
